from datetime import datetime  # 导入datetime模块，用于处理日期和时间
from pathlib import Path
import re

AlbumPath = Path(r"F:\手机备份\Quark\Download")

out_time_format = "%Y%m%d_%H%M%S_%f"

for path in AlbumPath.glob("*.jpg"):
    # print(path.name)
    pattern = r'^IMG_\d{8}_\d{6}$'
    # 如果path.name的前19位不符合pattern
    if not re.match(pattern, path.name[:19]):
        print(f"\n{path.name} 不符合命名规范")
        mtime = path.stat().st_mtime
        print(f"修改时间 {datetime.fromtimestamp(mtime)}")

        if mtime:
            # 转成out_time_format格式
            date_taken = datetime.fromtimestamp(mtime).strftime(out_time_format)
            print(f"格式化时间 {date_taken}")

            # 构造新图片文件名
            new_name = "IMG_" + date_taken + path.suffix

            # 如果新文件名与旧文件名不同且新文件名不存在，则重命名文件
            if new_name != path.name and not Path(path.parent / new_name).exists():
                path.rename(path.parent / new_name)
                print(f"重命名成功 {new_name}")
            else:
                print(f"新文件名 {new_name} 已存在")
                # 移动到重复文件夹
                repeat_folder = path.parent / "重复照片"
                repeat_folder.mkdir(exist_ok=True)
                path.rename(repeat_folder / path.name)
                print(f"{path.name} 移动到repeat文件夹")
